package com.project.bookstore.cart.service;

import com.project.bookstore.cart.entity.Cart;
import com.project.bookstore.cart.pojo.CartClientLocalVO;
import com.project.bookstore.cart.pojo.CartVO;
import com.project.bookstore.common.CommonResult;

import java.util.List;

public interface ICartService {
    List<CartVO> getCartList();

    /**
     * 登录状态下 通过用户ID 获取购物车数据
     *
     * @param userId 用户ID
     * @return
     */
    List<CartVO> getUserCartList(Long userId);

    int deleteCartById(Integer id);

    //加购物车
    CommonResult<Void> add(Long bookId, Integer num, Long userId);

    //未登录状态下通过 图书ID 数组获取购物车数据
    List<CartVO> getCartByBookIds(CartClientLocalVO[] clientLocalVOS);

    //合并客户端购物额车数据到服务器
    CommonResult<Void> mergeLocalCart(Long userId,CartClientLocalVO[] carts);

    //根据ID数组批量删除购物车
    int multiDeleteByIds(Long[] cartIds);
}
